# 寻找字符串中字典序最小的字符 def getChar(string): string_length = len(string) if string_length == 0: return '' else: result = string[0] for i in range(1, string_length): if string[i] < result: result = string[i] return result # 构建字符串的词频表 def getCharCount(string): result = {} for i in string: if i not in result.keys(): result[i] = 1 else: result[i] += 1 return result # 删除掉字符串中某个指定的字符 def deleteChar(string, char): result = '' for i in string: if i == char: continue else: result += i return str(result) # 输入字符串 string = input() # 获取字符串词频分布表 char_count = getCharCount(string) char_count_length = len(char_count.keys()) result = [] while len(result) != char_count_length: # 当前遍历位置 i = 0 # 当前字符串长度 string_length = len(string) # 遍历字符串 for i in range(string_length): char_count[string[i]] -= 1 # 需要进行选择的位置 if char_count[string[i]] == 0: break # 如果当前位置是字符串最后一个位置 if i + 1 == string_length: result_char = getChar(string) result.append(result_char) string = deleteChar(string, result_char) else: result_char = getChar(string[:i + 1]) result.append(result_char) string = deleteChar(string[i:], result_char) # 重新构建词频表 char_count = getCharCount(string) print(''.join(result))